//=======================================
//     TPVLink: Cierres (Detalle)
//=======================================

SELECT CABEFACV.CIERRE NUMERO, CABEFACV.FECHA FECHA, CABEFACV.HORA,
       P.NOMREP VENDEDOR,
       (SELECT TOP 1 RTRIM(LTRIM(T3.CENTROCOSTE_CENTRO))
        FROM LINK_MOVIMIENTOS_CAJA M3
        LEFT JOIN LINK_TERMINAL T3 ON T3.TERMINAL = M3.TERMINAL
        WHERE M3.CIERRE = CABEFACV.ID
       ) CENTRO,
       (SELECT TOP 1 RTRIM(LTRIM(T1.CENTROCOSTE_CAJA))
        FROM LINK_MOVIMIENTOS_CAJA M1
        LEFT JOIN LINK_TERMINAL T1 ON T1.TERMINAL = M1.TERMINAL
        WHERE M1.CIERRE = CABEFACV.ID
       ) CAJA,
       (SELECT TOP 1 RTRIM(LTRIM(T2.CENTROCOSTE))
        FROM LINK_MOVIMIENTOS_CAJA M2
        LEFT JOIN LINK_TERMINAL T2 ON T2.TERMINAL = M2.TERMINAL
        WHERE M2.CIERRE = CABEFACV.ID
       ) TERMINAL,
       COALESCE((SELECT SUM(TOTAL_EFECTIVO) + SUM(TOTAL_VISA)
        FROM LINK_MOVIMIENTOS_CAJA MCT
        INNER JOIN LINK_CONCEPTO_MOVIMIENTO CT ON CT.ID = MCT.CONCEPTO            
        WHERE MCT.CIERRE = CABEFACV.ID 
          AND (CT.ID = 8 OR CT.ID =9)),0) "COBRADO FACTURAS",
       COALESCE((SELECT SUM(TOTAL_VALE) 
        FROM LINK_MOVIMIENTOS_CAJA MV 
        INNER JOIN LINK_CONCEPTO_MOVIMIENTO C ON C.ID = MV.CONCEPTO            
        WHERE MV.CIERRE = CABEFACV.ID 
          AND (C.ID = 8 OR C.ID =9)),0) VALES,
       COALESCE(CABEFACV.TOTALEFECTIVO,0) "DECLARADO EFECTIVO",
       COALESCE(CABEFACV.TOTALVISA,0) "DECLARADO TARJETA",
       COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA MV1 
        INNER JOIN LINK_CONCEPTO_MOVIMIENTO C1 ON C1.ID = MV1.CONCEPTO            
        WHERE MV1.CIERRE = CABEFACV.ID 
          AND (C1.ID = 8 OR C1.ID =9)),0) "COBRADO EFECTIVO FACTURAS",
       (COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA ME             
        WHERE ME.CIERRE = CABEFACV.ID),0) -    
        COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA MV1 
        INNER JOIN LINK_CONCEPTO_MOVIMIENTO C1 ON C1.ID = MV1.CONCEPTO            
        WHERE MV1.CIERRE = CABEFACV.ID 
          AND (C1.ID = 8 OR C1.ID =9)),0) -  
        COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA MV2
        WHERE MV2.CIERRE = CABEFACV.ID 
          AND MV2.DESCRIPCION = 'SALDO INICIAL'),0)
       ) "ENTRADAS / SALIDAS",
       COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA MV2
        WHERE MV2.CIERRE = CABEFACV.ID 
          AND MV2.DESCRIPCION = 'SALDO INICIAL'),0) "SALDO INICIAL",
       COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA ME             
        WHERE ME.CIERRE = CABEFACV.ID),0) "TOTAL EFECTIVO",
       COALESCE((SELECT SUM(TOTAL_VISA) 
        FROM LINK_MOVIMIENTOS_CAJA MT             
        WHERE MT.CIERRE = CABEFACV.ID),0) "TOTAL TARJETA",
       (COALESCE(CABEFACV.TOTALEFECTIVO,0) -   
        COALESCE((SELECT SUM(TOTAL_EFECTIVO) 
        FROM LINK_MOVIMIENTOS_CAJA ME             
        WHERE ME.CIERRE = CABEFACV.ID),0)  
       ) "DIFERENCIA EFECTIVO",
       (COALESCE(CABEFACV.TOTALVISA,0) -
        COALESCE((SELECT SUM(TOTAL_VISA) 
        FROM LINK_MOVIMIENTOS_CAJA MT             
        WHERE MT.CIERRE = CABEFACV.ID),0)
       ) "DIFERENCIA TARJETA",
       COALESCE(CABEFACV.DIFERENCIA,0) "TOTAL DIFERENCIA",
       COALESCE(CABEFACV.RETIRADO,0) RETIRADO,
       (CABEFACV.TOTALEFECTIVO - COALESCE(CABEFACV.RETIRADO,0)) "FONDO DE CAJA",
       CAST('F' AS VARCHAR(1)) CONTABLE,
       '' IDFACV
FROM LINK_CIERRES_CAJA CABEFACV
LEFT JOIN REPRESEN P ON RTRIM(LTRIM(P.CODREP)) = RTRIM(LTRIM(CABEFACV.VENDEDOR))
  WHERE ( [DevolverRegistros, SysName, 1 = 1])
    AND ( [CondicionFechasDocumento, SysName, 1 = 1])
    AND ( ( '[TextoBusqueda, SysName, '']' = '') OR
          ( (SELECT TOP 1 M0.TIPOCONT
             FROM LINK_MOVIMIENTOS_CAJA M0
             WHERE M0.CIERRE = CABEFACV.ID
          ) LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( (SELECT TOP 1 RTRIM(LTRIM(T3.CENTROCOSTE_CENTRO))
             FROM LINK_MOVIMIENTOS_CAJA M3
             LEFT JOIN LINK_TERMINAL T3 ON T3.TERMINAL = M3.TERMINAL
             WHERE M3.CIERRE = CABEFACV.ID
          ) LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( (SELECT TOP 1 RTRIM(LTRIM(T2.CENTROCOSTE))
             FROM LINK_MOVIMIENTOS_CAJA M2
             LEFT JOIN LINK_TERMINAL T2 ON T2.TERMINAL = M2.TERMINAL
             WHERE M2.CIERRE = CABEFACV.ID
          ) LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( (SELECT TOP 1 RTRIM(LTRIM(T1.CENTROCOSTE_CAJA))
             FROM LINK_MOVIMIENTOS_CAJA M1
             LEFT JOIN LINK_TERMINAL T1 ON T1.TERMINAL = M1.TERMINAL
             WHERE M1.CIERRE = CABEFACV.ID
          ) LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.FECHA LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( P.NOMREP LIKE '%[TextoBusqueda, SysName, '']%'))
ORDER BY CABEFACV.FECHA, CABEFACV.CIERRE
